home *** CD-ROM | disk | FTP | other *** search
/ Inventor Labs: Technology / INVENTORLABS_TECHNOLOGY.BIN / pc / files / invest.dir / 00098_Script_Inv Frequency Obj < prev    next >
Text File  |  1997-05-26  |  7KB  |  263 lines

  1. --Inv Frequency Obj
  2.  
  3.  
  4. property pPuppetSpriteList, pHarptones, pHarpnotes, pHarpnum, pStart
  5. property pSliderPos, pTesttone, pHarpString, 
  6. property pFirstNoteSndCastNum, pFirstWaveCastNum, pFirstNotePictCastNum
  7. property pFirstBlueWaveCastNum, pFirstHarpCastNum
  8. property pFirstButtonSprite
  9.  
  10. -- tj&dl
  11. property pNewHarp, pOldHarp
  12. property pSliderBall
  13. property pSliderConstraint -- sprite num of QD rect to constrain ball
  14. property pNotesMatched
  15. property pSpeakerSprite
  16. property pSpeakerList
  17. property pCurrentSpeaker
  18. property pMaxSpeakers
  19. property pSpeakerFlag
  20. property pStartSpeaker
  21. ------------------------------------------------------------ò
  22. on mInit me
  23.   
  24.   set pPuppetSpriteList = [4,5,6,12,13,14,15,16,17,18,20]
  25.   set pFirstNoteSndCastNum = the number of cast "C1.AIFF"
  26.   set pFirstWaveCastNum = the number of cast "C.scale"
  27.   set pFirstNotePictCastNum = the number of cast "IPFBBC"
  28.   set pFirstBlueWaveCastNum = the number of cast "IPFWVC.PIC"
  29.   set pFirstHarpCastNum = the number of cast "IPFHARP1.mov"
  30.   set pFirstButtonSprite = 13
  31.   
  32.   
  33.   set pStartSpeaker = the number of member "speaker1.pic.8bit"
  34.   set pCurrentSpeaker = 0
  35.   set pMaxSpeakers = 6
  36.   
  37.   set pSpeakerSprite = 20
  38.   set pSliderBall = 4
  39.   set pSliderConstraint = 5
  40.   
  41.   mActivate(me)
  42.   return me
  43.   
  44. end mInit
  45. ------------------------------------------------------------ò
  46. on mActivate me
  47.   
  48.   repeat with x in pPuppetSpriteList
  49.     puppetSprite x, true
  50.   end repeat 
  51.   set pHarpnotes = [4]
  52.   set pHarptones = [24]
  53.   mInitHarp me 
  54.   
  55.   -- set the default of harp to harp 5
  56.   set pOldHarp = 9
  57.   set pNewHarp = 9
  58.   set pHarpnum = 5
  59.   
  60.   puppetsprite pNewHarp, True
  61.   set the castnum of sprite pNewHarp = 0
  62.   
  63.   mChangeHarp me
  64.   set pSpeakerFlag = #STOP
  65.   set pNotesMatched = 0
  66.   set the constraint of sprite pSliderBall = pSliderConstraint
  67.   
  68. end mActivate
  69. ------------------------------------------------------------ò
  70. on mClose me
  71.   
  72.   repeat with n = 20 down to 2
  73.     set the puppet of sprite n = 0
  74.     set the visible of sprite n = 1
  75.   end repeat
  76.   
  77.   puppetsprite pNewHarp, fAlse
  78.   puppetsprite pOldHarp, fAlse
  79.   
  80.   repeat with n = 2 to 20
  81.     set the puppet of sprite n = 0
  82.     set the visible of sprite n = 1
  83.   end repeat
  84.   
  85.   set the constraint of sprite pSliderBall = 0
  86.   puppetsprite 33,  false
  87.   
  88. end mClose
  89. ------------------------------------------------------------ò
  90. on mInitHarp me
  91.   
  92.   set pHarptones = [12,7,4,0,11,9,5,2,13,10,8,3,23,18,6,4,19,15,11,7,21,19,16,14]
  93.   
  94. end mInitHarp
  95. ------------------------------------------------------------ò
  96. on mAnimateSpeaker me
  97.   
  98.   if the movieRate of sprite 12 = 1 then
  99.     if pSpeakerFlag = #ANIMATESPEAKER then
  100.       set pCurrentSpeaker = pCurrentSpeaker + 1
  101.       if pCurrentSpeaker > pMaxSpeakers then set pCurrentSpeaker = 0
  102.       set the castNum of sprite pSpeakerSprite = member( pStartSpeaker + pCurrentSpeaker)
  103.       if the movieTime of sprite 12 >= the stopTime of sprite 12 then
  104.         set pSpeakerFlag = #STOP
  105.         set pCurrentSpeaker = 0
  106.            set the castNum of sprite pSpeakerSprite = member( pStartSpeaker)
  107.       end if
  108.       
  109.     end if
  110.   end if
  111.   
  112. end mAnimateSpeaker
  113. ------------------------------------------------------------ò
  114. on mPlayHarp me
  115.   
  116.   set duration = 124
  117.   set the movietime of sprite 12 to pStart
  118.   set the movierate of sprite 12 to 1
  119.   set the stopTime of sprite 12 to (pStart + duration)
  120.   
  121. end mPlayHarp
  122. ------------------------------------------------------------ò
  123. on mPlayAllNotes me
  124.   
  125.   set the movieTime of sprite 12 to 0
  126.   set the movieRate of sprite 12 to 1
  127.   
  128. end mPlayAllNotes
  129. ------------------------------------------------------------ò
  130. on mPlaytone me
  131.   
  132.   set pSpeakerFlag = #ANIMATESPEAKER
  133.   set test to the name of cast (pFirstNoteSndCastNum + pTesttone) -- used to be -1 tj&dl
  134.   puppetSound test
  135.   
  136. end mPlaytone
  137. ------------------------------------------------------------ò
  138. on mStringClick me
  139.   
  140.   set pSpeakerFlag = #ANIMATESPEAKER
  141.   
  142.   set pHarpString to the clickOn-12
  143.   set pStart = (4-pHarpString)*124
  144.   
  145.   -- play harp animation
  146.   mPlayHarp(me)
  147.   
  148.   -- show harp string waveform
  149.   mUpdateHarpWaveform me
  150.   
  151. end mStringClick
  152. ------------------------------------------------------------ò
  153. on mSliderClick me
  154.   
  155.   set the movierate of sprite 12 = 0
  156.   updatestage
  157.   
  158.   repeat while the mousedown
  159.     put the mouseV into pSliderPos
  160.     
  161.     if pSliderPos < 75 then set pSliderPos = 75
  162.     if pSliderPos > 295 then set pSliderPos = 295
  163.     
  164.     set the locV of sprite pSliderBall = mouseV()
  165.     updateStage
  166.     
  167.   end repeat
  168.   
  169.   set pTesttone = 23 - integer((pSliderPos-75)/10)
  170.   set nearnestNote = (23-pTesttone)*10+75
  171.   set the locv of sprite 4 to nearnestNote
  172.   updateStage
  173.   
  174.   
  175.   set the castnum of sprite 18 to (pFirstWaveCastNum + pTesttone)
  176.   updateStage
  177.   
  178.   -- play the test tone
  179.   mPlaytone(me)
  180.   
  181.   -- compare test tone and harp tone to see if they match
  182.   mTestTone me
  183.   
  184. end mSliderClick
  185. ------------------------------------------------------------ò
  186. on mHarpNoteClick me
  187.   
  188.   set pHarpnum to the clickOn - 5
  189.   
  190.   set pOldHarp = pNewHarp
  191.   set pNewHarp = the clickOn
  192.   
  193.   puppetsprite pOldHarp, false
  194.   puppetsprite pNewHarp, True
  195.   set the castnum of sprite pNewHarp = 0
  196.   go the frame
  197.   
  198.   cursor 4
  199.   mChangeHarp me
  200.   
  201.   set the castnum of sprite 17 to the number of cast "LeftBlank"
  202.   set the castnum of sprite 18 to the number of cast "RightBlank"
  203.   cursor -1
  204.   
  205.   updateStage
  206.   
  207. end mHarpNoteClick
  208. ------------------------------------------------------------ò
  209. on mTestTone me
  210.   
  211.   
  212.   if pHarpString <> 0 then
  213.     if pTesttone = getAt(pHarpnotes,pHarpString) then
  214.       
  215.       --tj&dl counting routine to test for all four notes being matched
  216.       set pNotesMatched = pNotesMatched + 1
  217.       if pNotesMatched = 4 then
  218.         set pNotesMatched = 0
  219.         set TEMP = pTestTone
  220.         set TEMP = TEMP mod 12
  221.         set the castnum of sprite (12 + pHarpString) to (pFirstNotePictCastNum + TEMP)
  222.         mPlayAllNotes me
  223.         updateStage
  224.       else
  225.         set TEMP = pTestTone
  226.         set TEMP = TEMP mod 12
  227.         set the castnum of sprite (12 + pHarpString) to (pFirstNotePictCastNum + TEMP)
  228.         mPlayHarp me
  229.         updateStage
  230.       end if
  231.     end if
  232.     
  233.   end if
  234.   
  235. end mTestTone
  236. ------------------------------------------------------------ò
  237. on mUpdateHarpWaveform me
  238.   
  239.   -- get value of harp string
  240.   set temp = getAt(pHarpnotes,pHarpString)
  241.   set the castnum of sprite 17 to (pFirstBlueWaveCastNum + temp)
  242.   updateStage
  243.   
  244. end mUpdateHarpWaveform
  245. ------------------------------------------------------------ò
  246. on mChangeHarp me
  247.   
  248.   set the castnum of sprite 12 to pFirstHarpCastNum - 1 +pHarpnum
  249.   updateStage
  250.   
  251.   set temp = (pHarpnum-1)*4
  252.   repeat with x = 1 to 4
  253.     put pHarptones && temp+x
  254.     setAt(pHarpnotes,x,getAt(pHarptones,temp+x))
  255.     set pStartNumberCastNum = the number of cast "IPFRB1.pic"
  256.     set the castnum of sprite x+pFirstButtonSprite-1 to (pStartNumberCastNum - 1 + x)
  257.   end repeat 
  258.   updateStage
  259.   
  260.   set pNotesMatched = 0
  261.   
  262. end mChangeHarp
  263. ------------------------------------------------------------ò